import { Global, Module } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { Redis } from 'ioredis';



// 通过NestJS的模块系统创建了一个全局模块（@Global()），该模块使用工厂提供者（useFactory）来创建并配置ioredis的Redis客户端实例。
// 这个实例被注册为名为'REDIS'的提供者，并通过exports数组使其可在其他模块中通过依赖注入使用
@Global()
@Module({
  providers: [
    {
      provide: 'REDIS',
      useFactory: (configService: ConfigService) => {
        const redisConfig = configService.get('redis');
        return new Redis(redisConfig);
      },
      inject: [ConfigService],
    },
  ],
  exports: ['REDIS'],
})
export class RedisModule {}
